<?php

class AdmRegistro extends TPage {

    public function onLoad($param) {
        parent::onLoad($param);
        if (!$this->IsPostBack) {
            $this->actualizarIntefaz();
        }
    }

    private function actualizarIntefaz() {
        $arr = $this->obtenerDatos();
        $this->iniciarControles($arr);
        $this->mostrarMensaje();
    }

    private function obtenerDatos() {
        $arg = $this->Request["a"];
        if (!Util::isNullOrEmpty($arg)) {
            $id = Util::desencriptarUrl($arg, "id");
            $this->setViewState("id", $id);
            $oEntrevistaEscortBLL = new Entrevista_escortBLL();
            $arr = $oEntrevistaEscortBLL->obtenerPorId($id);
        } else {
            $this->setViewState("id", "-1");
            $arr = array();
        }

        return $arr;
    }

    private function iniciarControles($arr) {
        $id = $this->getViewState("id");

        if (count($arr) > 0) {
            $oEntrevistaEscort = new Entrevista_escort();
            $oEntrevistaEscort = $arr;

            $intIdEscort = $oEntrevistaEscort->getIdEscort();
            $strFecha = $oEntrevistaEscort->getFecha();
            $strTitulo = $oEntrevistaEscort->getTitulo();
            $strMensaje = $oEntrevistaEscort->getMensaje();
            $intIdEstado = $oEntrevistaEscort->getIdEstado();
            $strSrc = $oEntrevistaEscort->getSrc();
        } else {
            $intIdEscort = Combo::VALOR_SELECCIONE;
            $strFecha = "";
            $strTitulo = "";
            $strMensaje = "";
            $intIdEstado = Combo::VALOR_SELECCIONE;
            $strSrc = "";
        }

        //formatea valores
        $strFecha = Util::isDatetimeEmpty($strFecha, "");
        if (!Util::isNullOrEmpty($strFecha)) {
            $strFecha = Util::fechaDateTimeANormal($strFecha);
        }

        $this->ltTitulo->Text = (($id == "-1") ? "Nueva" : "Modificar") . " Entrevista";
        $this->ddlEscort->asignarSelectedValue($intIdEscort);
        $this->lblFecha->Text = $strFecha;
        $this->txtTitulo->Text = $strTitulo;
        $this->htmlArea->Text = $strMensaje;
        $this->ddlEstado->asignarSelectedValue($intIdEstado);
        $this->ltlImagen->Text = Util::dibujarImagenPrettyPhoto($this->Page, $strSrc, "DESTACADA", "");
        $this->pnlFecha->Visible = ($id == "-1") ? false : true;
        $this->pnlImagen->Visible = ($id == "-1") ? false : true;

        $arrEliminar = array(
            "idRegistro" => $id,
            "urlAjax" => "Entrevista.Ajax",
            "opcionAjax" => "Eliminar",
            "urlRespuesta" => "Entrevista.AdmListar",
            "parametrosUrlRespuesta" => ""
        );
        $opcionesEliminar = Util::jsonOpcionesEliminar($arrEliminar);
        $this->btnEliminar->Visible = ($id == "-1") ? false : true;
        $this->btnEliminar->Attributes->Add("onclick", "eliminarRegistro(" . $opcionesEliminar . ")");
        $this->btnVolver->NavigateUrl = "index.php?page=Entrevista.AdmListar";
    }

    private function mostrarMensaje() {
        $arg = $this->Request["a"];
        if (!Util::isNullOrEmpty($arg)) {
            $tipoMensaje = Util::desencriptarUrl($arg, "tipoMensaje");
            $mensaje = Util::desencriptarUrl($arg, "mensaje");

            if (!Util::isNullOrEmpty($mensaje)) {
                Util::mostrarMsj($this->Page, "da-ex-val-error", $mensaje, $tipoMensaje);
            }
        }
    }

    public function btnGrabarClick($sender, $param) {
        $mensaje = "";
        $tipoMensaje = "";
        $id = $this->getViewState("id");
        $idEscort = $this->ddlEscort->obtenerSelectedValue();
        $oUsuario = Util::getSession("USUARIO");
        $oEntrevistaEscort = new Entrevista_escort();
        $oEntrevistaEscortBLL = new Entrevista_escortBLL();

        if ($id != -1) {
          $arr = $oEntrevistaEscortBLL->obtenerPorId($id);
          $oEntrevistaEscort = $arr;
        }

        $oEntrevistaEscort->setId($id);
        $oEntrevistaEscort->setIdEscort($idEscort);
        $oEntrevistaEscort->setTitulo($this->txtTitulo->Text);
        $oEntrevistaEscort->setMensaje($this->htmlArea->Text);
        $oEntrevistaEscort->setIdEstado($this->ddlEstado->obtenerSelectedValue());

        $arrRecurso = DDPEntity::getRecursoEscort($idEscort, Tipo_recurso::IMAGEN, "DESTACADA");
        foreach ($arrRecurso as $row) {
            $oEntrevistaEscort->setSrc($row->getSrc());
        }

        if ($id == "-1") {
          $oEntrevistaEscort->setIdUsuario($oUsuario->getId());
          $resultado = $oEntrevistaEscortBLL->grabar($oEntrevistaEscort);
          if (is_numeric($resultado)) {
              $id = $resultado;
          }
        } else {
          $resultado = $oEntrevistaEscortBLL->editar($oEntrevistaEscort);
        }

        if (!Util::isNullOrEmpty($resultado) && !is_numeric($resultado)) {
            $tipoMensaje = Util::MENSAJE_ERROR;
            $mensaje = $resultado;
        } else {
            $tipoMensaje = Util::MENSAJE_OK;
            $mensaje = "El registro fue grabado con &eacute;xito";
        }

        $arg = Util::encriptarUrl(array(
                    "id" => $id,
                    "tipoMensaje" => $tipoMensaje,
                    "mensaje" => $mensaje
                        )
        );
        $this->Response->Redirect("index.php?page=Entrevista.AdmRegistro&a=" . $arg);
    }

}

?>
